package polyparameter;

public class PolyParameter {
    public static void main(String[] args) {
        GeneralStaff tom = new GeneralStaff("tom", 8000);
        Manager smith = new Manager("smith", 20000, 10000);
        //打印工资
        PolyParameter polyParameter = new PolyParameter();
        polyParameter.showEmpAnnual(tom);
        polyParameter.showEmpAnnual(smith);
        //调用特有方法
        polyParameter.testWork(tom);
        polyParameter.testWork(smith);
    }

    //实现获取任何员工对象的年工资，并在main方法中调用该方法
    public void showEmpAnnual(Employee e) {
        System.out.println(e.getAnnual());//动态绑定机制
    }

    //testWork方法，如果是普通员工就调用work方法，如果是经理，则调用管理方法
    public void testWork(Employee e) {
        if (e instanceof GeneralStaff) {//判断运行类型
            ((GeneralStaff) e).work();
        } else if (e instanceof Manager) {
            ((Manager) e).manage();
        } else if (e instanceof Employee) {
            ;
        } else {
            System.out.println("你输入的类型有误，请重新输入");
        }
    }
}
